<Distributed Storage System>
There has been used a distributed storage system (Distributed Storage System) that implements a system where a plurality of computers (data nodes, or also referred to just as “nodes”) are coupled via a network, and data is stored in a data storage unit (such as an HDD (Hard Disk Drive) or a memory) of each computer and is utilized.
In a typical distributed storage technology, software or specially dedicated hardware implements determinations as follows:                on which computer (node) data is to be arranged;        by which computer (node) processing is to be performed.Then, by dynamically changing operation of the software or the specially dedicated hardware according to a state of the system, a resource usage amount in the system is adjusted and performance for a user (client computer) is improved.        
In the distributed storage system, data is distributed in a plurality of the nodes. Thus, a client who is going to access data first needs to know which node holds the data. Further, when there are a plurality of the nodes that hold the data, the client needs to know which (one or more) nodes to be accessed.
In the distributed storage system, there has been generally used for file management, a system separately saving a file entity and metadata of the file (indicating a storage location of the file, a file size, an owner of the file, and the like).
<Metaserver Scheme>
As one of technologies for a client to identify a node that holds data in the distributed storage system, a metaserver scheme is known. In the metaserver scheme, there is provided a metaserver configured by one or a plurality (but rather a small number) of the computers managing location information of data.
In the metaserver scheme, however, there is a problem that, with an increase in a size of a configuration of a distributed storage system, processing performance of the metaserver configured to perform processing to detect a location of a node that stores data becomes deficient (the number of nodes to be managed by one metaserver becomes immense, so that the processing performance of the metaserver cannot keep up with the increased number of the nodes), and the introduced metaserver rather becomes a bottleneck in terms of access performance.
<Distributed KVS>
As another method (technology) for identifying the position of a node that stores data, there is provided a method of finding the position of the data using a dispersion function (such as a hash function). The method of this type is referred to as a distributed KVS (Key Value Store: key value store), for example.
In the distributed KVS, all clients share the dispersion function and a list (node list) of the nodes participating in the system.
Further, stored data is partitioned into data fragments (Values) having a fixed length or an arbitrary length. An identifier (key) that can be uniquely identified is given for each data fragment (Value), and a pair of the (Key, Value) is stored. By changing the node (server) of a saving destination according to the value of the key, for example, data can be distributed and saved in a plurality of the nodes.
When accessing data, each client uses the key as an input value of the dispersion function and arithmetically obtains the position of the node that stores the data therein, based on an output value of the dispersion function and the node list.
Basically, the dispersion function of information shared among the clients does not change over time (time-invariant). On the other hand, content of the node list is changed as needed due to a failure or addition of the node. For this reason, it is necessary for the client to be able to access those information with an arbitrary method.
<Replication>
In the distributed storage system, it is a common practice to hold replicas of data in a plurality of the nodes, and to utilize the replicas of data for load distribution, in order to ensure availability (Availability: ability that the system can continuously operate).
Patent Literature 1 describes a technology of implementing load distribution using a replica of data that is generated.
Patent Literature 2 searched by a prior art search conducted about the present invention discloses a configuration where a server defines an information structure definition body by an information structure definition unit, and a registration client constructs a database using the information structure definition body, generates a data base access tool, and registers information in the database using this tool. Patent Literature 3 discloses a configuration of a distributed type storage system. The distributed type storage system includes storage nodes configured to store replicas of objects, where each replica is accessible via a unique locator value, and a keymap instance configured to store a respective keymap entry for each object. For the given object, the respective keymap entry includes the key value and each locator value corresponding to replicas of the object.